home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 182 (1991-12-10)(Manewaldt, A.)(DE)(PD).zip / Taifun 182 (1991-12-10)(Manewaldt, A.)(DE)(PD).adf / Sketch_A_Tune / Spconvert / Spconvert.amosSourceCode
AMOS Source Code  |  1991-12-05  |  3KB  |  142 lines

  1. Global MOBNUMBER,LODE$,A,B,BSSTART,BLSTART,CON,AERROR
  2. AERROR=0
  3. PREPARE1
  4. PREPARE2
  5. Do 
  6.    Exit If Mouse Click=1
  7. Loop 
  8. PREPARE3
  9. Do 
  10.    If Hzone(,X Mouse,Y Mouse)=1 Then CON=1
  11.    If Hzone(,X Mouse,Y Mouse)=2 Then CON=0
  12.    Exit If Mouse Click<>0
  13. Loop 
  14. BINARYLOAD
  15. REARRANGE
  16. BINARYSAVE
  17. COMPLETE
  18. Procedure PREPARE1
  19.    Screen Open 0,320,256,4,Lowres
  20.    Paper 0
  21.    Pen 1
  22.    Flash Off 
  23.    Palette $0,$1E1,$60,$E80
  24.    Curs Off 
  25.    Cls 
  26. End Proc
  27. Procedure PREPARE2
  28.    Cls 
  29.    Set Pattern 0 : Set Paint 1
  30.    Ink 2,,3
  31.    Bar 20,24 To 298,120
  32.    Paper 2
  33.    Locate ,5
  34.    Centre "Mobed to Sprite Convertor"
  35.    Cdown : Cdown 
  36.    Centre "Written By Martin Jones"
  37.    Cdown : Cdown 
  38.    Centre "Written using AMOS"
  39.    Cdown : Cdown 
  40.    Centre "Copyright (c) 1990 Mandarin/Jawx"
  41.    Cdown : Cdown 
  42.    Centre "Click mouse to continue"
  43. End Proc
  44. Procedure PREPARE3
  45.    Paper 0
  46.    Cls 
  47.    Set Pattern 0 : Set Paint 1
  48.    Ink 2,,3
  49.    Bar 20,24 To 298,120
  50.    Paper 2
  51.    Locate ,6
  52.    Centre "Do you want control words saved ??"
  53.    Locate 7,11
  54.    Print "Yes                     No"
  55.    Ink 1
  56.    Box 52,85 To 82,98
  57.    Box 244,85 To 268,98
  58.    Reserve Zone 3
  59.    Set Zone 1,52,85 To 82,98 : Set Zone 2,244,85 To 268,98
  60. End Proc
  61. Procedure BINARYLOAD
  62.    LODE$=Fsel$("","Mobdefault","Which file do you want to convert ?","")
  63.    If LODE$="" Then AERROR=1 : AERPROC
  64.    If Not Exist(LODE$) Then AERROR=7 : AERPROC
  65.    Paper 0
  66.    Pen 1
  67.    Cls 
  68.    Locate ,13
  69.    Centre "Loading file "+LODE$
  70.    Reserve As Work 8,32768
  71.    BLSTART=Start(8)
  72.    Bload LODE$,8
  73.    If Peek(BLSTART)<>Asc("B") or Peek(BLSTART+1)<>Asc("I") or Peek(BLSTART+2)<>Asc("N") Then AERROR=2 : AERPROC
  74.    A=Leek(BLSTART+4)
  75.    If Btst(4,A) Then AERROR=3 : AERPROC
  76.    If Btst(5,A) Then AERROR=4 : AERPROC
  77.    B=A
  78.    B=B and 15
  79.    If B<>2 Then AERROR=5 : AERPROC
  80.    A=A and $F00
  81.    A=A/$100
  82.    If A<>2 and A<>4 Then AERROR=6 : AERPROC
  83.    FILELENGTH=Leek(BLSTART+16)
  84.    MOBNUMBER=FILELENGTH/64
  85. End Proc
  86. Procedure REARRANGE
  87.    Paper 0
  88.    Cls 
  89.    Locate ,13
  90.    Centre "Processing...."
  91.    Reserve As Work 9,32768
  92.    Add BLSTART,20
  93.    BSSTART=Start(9)
  94.    For I=1 To MOBNUMBER
  95.       If CON=1 Then Doke BSSTART,0 : Add BSSTART,2
  96.       BLSTART2=BLSTART+32
  97.       For K=1 To 16
  98.          A=Deek(BLSTART)
  99.          B=Deek(BLSTART2)
  100.          Doke BSSTART,A
  101.          Doke BSSTART+2,B
  102.          Add BSSTART,4
  103.          Add BLSTART,2
  104.          Add BLSTART2,2
  105.       Next 
  106.       Add BLSTART,32
  107.    Next 
  108. End Proc
  109. Procedure BINARYSAVE
  110.    BEND=BSSTART-2
  111.    SAVFE$=LODE$+".sp"
  112.    Cls 
  113.    Locate ,13
  114.    Centre "Saving the file now...."
  115.    Print : Print 
  116.    Print SAVFE$
  117.    Bsave SAVFE$,Start(9) To BEND
  118. End Proc
  119. Procedure COMPLETE
  120.    Cls 
  121.    Locate ,13
  122.    Centre "File converted !"
  123.    Wait 200
  124.    End 
  125. End Proc
  126. Procedure AERPROC
  127.    Paper 0
  128.    Cls 
  129.    Colour 1,0
  130.    Pen 1
  131.    Flash 0,"(f00,20)(f80,20)"
  132.    Locate ,13
  133.    If AERROR=1 Then Centre "Conversion Aborted !!" : Goto OUT
  134.    If AERROR=2 Then Centre "Not a Mobed binary file !!" : Goto OUT
  135.    If AERROR=3 Then Centre "File has BLIT words cannot convert!" : Goto OUT
  136.    If AERROR=4 Then Centre "File has MASK information cannot convert!" : Goto OUT
  137.    If AERROR=5 Then Centre "Mobs must be 16 * 16 pixels !!" : Goto OUT
  138.    If AERROR=6 Then Centre "Only 4 & 2 planes allowed !!" : Goto OUT
  139.    If AERROR=7 Then Centre "Can't find file " : Goto OUT
  140.    OUT: Wait 400
  141.    End 
  142. End Proc